package com.whale.service;

import com.whale.dto.OrdersPaymentDTO;
import com.whale.dto.OrdersSubmitDTO;
import com.whale.dto.ReservePaymentDTO;
import com.whale.dto.ReserveSubmitDTO;
import com.whale.result.PageResult;
import com.whale.vo.*;

public interface ReserveService {

    /**
     * 用户预约
     * @param reserveSubmitDTO
     * @return
     */
    ReserveSubmitVO submitReserve(ReserveSubmitDTO reserveSubmitDTO);

    /**
     * 预约订单支付
     * @param reservePaymentDTO
     * @return
     */
    ReservePaymentVO payment(ReservePaymentDTO reservePaymentDTO) throws Exception;

    /**
     * 支付成功，修改预约订单状态
     * @param outTradeNo
     */
    void paySuccess(String outTradeNo);

    /**
     * 用户端预约分页查询
     * @param page
     * @param pageSize
     * @param status
     * @return
     */
    PageResult pageQuery4User(int page, int pageSize, Integer status);

    /**
     * 查询预约详情
     * @param id
     * @return
     */
    ReserveVO details(Long id);

    /**
     * 用户取消预约
     * @param id
     */
    void userCancelById(Long id) throws Exception;



}
